Referring now to FIG. 1, an exemplary block diagram of a network interface 10 includes a medium access control (MAC) device 12 that communicates with a physical layer device 14 (or PHY). The physical layer device 14 selectively communicates with one or more antennae 16 in order to transmit and receive radio frequency (RF) signals through a wireless medium. The MAC device 12 also communicates with a host 18 and receives data from the host 18 for transmission. The MAC device 12 processes the data and encodes frames according to a pre-established protocol. For example, the MAC device 12 may generate frames according to IEEE 802.11, 802.11a, 802.11b, 802.11g, 802.11h, 802.11n, 802.16, and/or 802.20, which are all hereby incorporated by reference in their entireties.
Since frames may be of different types and may correspond to different Quality of Service (QoS) priority levels, the MAC device 12 includes a queue module 20. Frames that are intended for transmission through the wireless medium are first written by firmware into several queues within the queue module 20. These frames are then scheduled for transmission according to a set of scheduler rules using the queues' priority levels.
Referring now to FIG. 2, the queue module 20 includes an exemplary transmit queue 28. Frames awaiting transmission on the wireless network are stored in the transmit queue 28. For illustrative purposes, the transmit queue 28 is shown with six frames, although a larger or smaller number of frames is possible. Each of the frames includes a transmission information portion 30 and a frame body portion 32. The transmission information portion 30 includes headers and/or fields that are applicable to the transmission characteristics, including transfer rate, of the frame.
The frame body portion 32 is the actual body of the frame and includes any data (payload) that is being transmitted. In various implementations, the queue module 20 includes multiple transmit and/or receive queues. For example, frames that are encoded according to a first coding scheme may be stored in a first transmit queue and frames that are encoded according to a second coding scheme may be stored in a second transmit queue.
A desired transmit rate for a frame is conveyed by firmware to the MAC hardware via one or more fields in the transmission information portion 30 of the frame. Referring now to FIGS. 3A and 3B, the desired transmit rate for a frame is indicated in the PHY preamble via one or more fields such as LT-SIG, HT-SIG1, HT-SIG2. FIG. 3A illustrates an exemplary legacy signal field LT-SIG in the PHY preamble of a frame encoded in an IEEE 802.11 legacy mode format. For example, frames encoded according to IEEE 802.11a, 802.11b, and/or 802.11g standards may be in a legacy mode format. In this case, the transmit rate of the frame is identified by eight bits of a Rate field 40 (identified as LT-SIG in FIG. 3A) included in the LT-SIG 30-1. In various implementations, a total of fourteen legacy rates are supported. Rate information is specified by firmware by writing an index (between 0 and 13) into the 4-bit Rate field 60 in the transmission information portion 30 of the queued frame. The MAC hardware provides the corresponding 8-bit encoded value to the PHY to use in the Rate field 40 of LT-SIG.
Frames may also be encoded in a high throughput (HT) mode format. For example, frames encoded according to IEEE 802.11n should be in an HT mode format. IEEE 802.11n is directed towards wireless communications systems that take advantage of spatial diversity multiplexing (or multipath) by utilizing multiple transmit and/or receive antennae 16. FIG. 3B illustrates exemplary HT signal fields HT-SIG1 and HT-SIG2 in the PHY preamble of a frame encoded in an IEEE HT mode format. Since frames in an HT mode format may be transmitted and/or received by multiple antennae 16, there are several parameters that contribute to the overall transmit rate that is achieved.
Frames encoded in an IEEE HT mode format include first and second signal fields 42 and 44, respectively, that are transmitted back-to-back (identified in FIG. 3B as HT-SIG1 and HT-SIG2). The first signal field 42 (HT-SIG1) includes a modulation coding scheme (MCS) field 46 and 20/40 BW field 50. The MCS field 46 is defined by seven bits and conveys the number of spatial streams (e.g., 1, 2, 3, or 4), a modulation scheme (e.g., BPSK, QPSK, 16-QAM, or 256-QAM), and a coding rate (e.g., 1/2, 3/4, 2/3, or 7/8), which all contribute to transmit rate. The 20/40 BW field 50 identifies whether the current bandwidth (BW) is 20 MHz or 40 MHz. The second signal field 44 (HT-SIG2) includes Short GI field 48. The Short GI field 48 identifies whether a short guard interval (GI) is used. Guard interval status and bandwidth both also contribute to transmit rate. For an HT frame, the firmware specifies the rate information by writing to the MCS, BW, GI sub-fields included in the RateInfo field 106 in the transmission information portion of the queued frame.
The MAC device 12 generally sets the transmit rate of a frame by firmware encoding the appropriate fields in the transmission information portion 30 of the frame before storing the frame in the transmit queue 28. However, the conditions of multiple wireless channels that are utilized by spatial diversity multiplexing systems are capable of changing due to many factors, including obstruction and line-of-sight (LOS) losses. When wireless channel quality degrades, the MAC device 12 may not receive the acknowledgement (ACK), indicating successful transmission of a frame, from a remote network interface. It is also possible that a negative acknowledgement (NACK) may be received from the remote network interface, but this mechanism becomes less reliable as channel quality degrades.
When a frame has not been successfully acknowledged, conventional wireless communications systems may attempt to retransmit the frame. However, the conditions of the wireless channel may not be able to support the desired transmit rate encoded in the frame. A further limitation is that the MAC device 12 is typically incapable of adjusting transmission parameters of the frame once the frame has been stored in the transmit queue 28.